package 二叉树;

import java.util.LinkedList;
import java.util.List;

//257 二叉树的所有路径（类似于回溯，需要记录路径）
public class Solution7 {
    public List<String> binaryTreePaths(TreeNode root) {
        dfs(root,new StringBuilder());
        return res;
    }
    List<String>res = new LinkedList();
    private void dfs(TreeNode node, StringBuilder path){
        if(node == null) return;
        //避免对传入路径产生影响，需要重新new 一个
        StringBuilder curpath = new StringBuilder(path);
        curpath.append(node.val);
        if(node.left==null&&node.right==null){
            res.add(curpath.toString());
        }
        curpath.append("->");
        dfs(node.left,curpath);
        dfs(node.right,curpath);
    }
}
